package com.ruoyi.sale.domain;

import java.math.BigDecimal;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 发货产品对象 tb_shipments_product
 * 
 * @author ruoyi
 * @date 2023-10-13
 */
@Data
@TableName(value="tb_shipments_product")
@EqualsAndHashCode(callSuper = false)
public class ShipmentsProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 发货产品id */
    @TableId("id")
    private String id;

    /** 商品图片 （建议采用路径存储url） */
    @TableField(exist = false)
    @Excel(name = "商品图片 ", readConverterExp = "建=议采用路径存储url")
    private List<String> imgName;

    /** 商品名称 */
    @TableField(exist = false)
    @Excel(name = "商品名称")
    private String name;

    /** GTIN */
    @TableField("gtin")
    @Excel(name = "GTIN")
    private String gtin;

    /** GTINS */
    @TableField(exist = false)
    private List<String> gtins;

    /** 商品价格 */
    @TableField(exist = false)
    @Excel(name = "商品价格")
    private BigDecimal price;

    /** 已发数量 */
    @TableField("sent_size")
    @Excel(name = "已发数量")
    private Long sentSize;

    /** 未发数量 */
    @TableField("oper_size")
    @Excel(name = "未发数量")
    private Long operSize;

    /** 计划数量 */
    @TableField("plan_size")
    @Excel(name = "计划数量")
    private Long planSize;

    /** 采购计划已选数量  */
    @TableField("procured_selected_count")
    @Excel(name = "采购计划已选数量 ")
    private Integer procuredSelectedCount;

    /** 提前结束数量  */
    @TableField("terminated_quantity")
    @Excel(name = "提前结束数量 ")
    private Integer terminatedQuantity;

    /** 剩余结束数量  */
    @TableField("to_be_terminated_quantity")
    @Excel(name = "剩余结束数量 ")
    private Integer toBeTerminatedQuantity;

    /** 关联的提前结束需要退货的采购订单id  */
    @TableField("related_return_purchase_order_id")
    @Excel(name = "关联的提前结束需要退货的采购订单id ")
    private String relatedReturnPurchaseOrderId;

    /** 结束数量信息备注  */
    @TableField("termination_remark")
    @Excel(name = "结束数量信息备注 ")
    private String terminationRemark;

    /** 是否是拆分产品 */
    @TableField(exist = false)
    @Excel(name = "是否是拆分产品")
    private Integer flag;

    /** 发货数量 */
    @TableField(exist = false)
    @Excel(name = "发货数量")
    private Integer planCount;

    /** 国际运费 */
    @TableField(exist = false)
    @Excel(name = "国际运费")
    private BigDecimal freight;

    /** 货运收货数量 */
    @TableField(exist = false)
    @Excel(name = "货运收货数量")
    private Integer receivedQuantity;

    /** 采购成本 */
    @TableField(exist = false)
    @Excel(name = "采购成本")
    private BigDecimal purchasingCost;

    /** 采购成本 */
    @TableField(exist = false)
    @Excel(name = "采购成本相关组成信息，给财务查看的信息")
    private String purchasingInfo;

    /** 采购成本 */
    @TableField(exist = false)
    @Excel(name = "采购成本相关组成信息，所有人查看的信息")
    private String publicPurchasingInfoBuilder;

    /** 金额 */
    @TableField("amount")
    @Excel(name = "金额")
    private BigDecimal amount;

    /** 产品备注 */
    @TableField(exist = false)
    @Excel(name = "产品备注")
    private String productRemarks;

    /** 关联tb_plan表 */
    @TableField("plan_id")
    private Long planId;

    /** 删除状态 0存在1删除 */
    @TableField("delete_status")
    private String deleteStatus;

    /** 产品sku */
    @TableField(exist = false)
    private String sku;

    /** 商品id */
    @TableField("product_id")
    private Long productId;

    /** 是否已选 */
    @TableField("select_status")
    private String selectStatus;

    /** 是否是组合产品 */
    @TableField("is_combo")
    private Integer isCombo;

    /** 组合产品和拆分产品的分组id */
    @TableField("combo_group_id")
    private String comboGroupId;

    /** 备货状态 */
    @TableField("shipping_status")
    private Integer shippingStatus;

    /** 销售计划编号 */
    @TableField(exist = false)
    private String planNumber;

    /** walmart产品sku */
    @TableField(exist = false)
    private String itemSku;

    /** 可用量 (可销售库存) */
    @TableField(exist = false)
    private BigDecimal availableQuantity;

    /** 货运状态 */
    @TableField(exist = false)
    private String receiptStatus;

    /** 包装清单 */
    @TableField(exist = false)
    private String packingList;

    /** 属性 */
    @TableField(exist = false)
    private String attribute;
}
